package entity;

import java.util.ArrayList;
import java.util.List;
/**Deck牌堆类，内部包含若干个Discard
 * 
 * @author zekdot
 *
 */
public class Deck {
	private List<Discard> discards;	//Discard组
	private int index;	//索引
	public Deck(List<Poker> list) {
		discards=new ArrayList<>();	//为Discard组分配空间
		int sum=list.size();
		index=sum/3;	//指向无Discard的位置
		for(int i=0;i<sum/3;i++)
			discards.add(new Discard(list.subList(i*3, (i+1)*3)));	//初始化每一个Discard
	}
	/**返回当前查看的Discard组
	 * 
	 * @return 如果没有查看的discard，返回null,否则返回discard
	 */
	public Discard getCurDiscard(){
		if(index>=discards.size()||index<0)
			return null;
		return discards.get(index);
	}
	/**更改索引
	 * 
	 */
	public void changeIndex(){
		if(index<discards.size()&&discards.get(index).isEmpty())//如果当前的discard为空
			discards.remove(index);//将该discard移出deck
		index=(index+1)%(discards.size()+1);//更新index值
	}
	/**打印牌堆信息
	 * 
	 * @return 牌堆信息
	 */
	public String toString(){
		StringBuffer buffer=new StringBuffer();
		for(int i=0;i<8;i++){
			buffer.append("牌组").append(i+1).append("的信息:");
			buffer.append(discards.get(i).toString());
			buffer.append("\n");
		}
		return buffer.toString();	
	}
	/**返回Deck是否为空
	 * 
	 * @return
	 */
	public boolean isEmpty(){
		return discards.isEmpty();
	}
	/*
	public static void main(String[] args) {
		Deck test=new Deck();
		for(int i=0;i<9;i++){
			System.out.println(test.index);
			test.changeIndex();
		}
	}*/
}
